package com.peas.platform.module.icims.expenditure.expenses.adapter.repository.po;

import java.util.*;
import java.math.*;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.peas.platform.common.core.annotation.Comment;
import com.peas.platform.framework.mybatisplus.po.BasePo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.ibatis.type.JdbcType;
import javax.validation.constraints.*;

// 报账单明细(会议)
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "`tbl_expenditure_reimbursement_meeting`")
public class ExpenditureReimbursementMeetingPo extends BasePo {

    // 报账单ID
    // （报账单表）外键
    @Comment(value = "报账单ID")
    @TableField(value = "`expenditure_reimbursement_id`", jdbcType = JdbcType.BIGINT)
    private Long expenditureReimbursementId;

    // 会议通知文号
    @Comment(value = "会议通知文号")
    @Size(max = 200, message = "会议通知文号不能超过200个字符")
    @TableField(value = "`meeting_notice`", jdbcType = JdbcType.VARCHAR)
    private String meetingNotice;

    // 会议计划
    // 选择框
    @Comment(value = "会议计划")
    @Size(max = 20, message = "会议计划不能超过20个字符")
    @TableField(value = "`meeting_plan`", jdbcType = JdbcType.VARCHAR)
    private String meetingPlan;

    // 会议地点
    @Comment(value = "会议地点")
    @Size(max = 500, message = "会议地点不能超过500个字符")
    @TableField(value = "`meeting_address`", jdbcType = JdbcType.VARCHAR)
    private String meetingAddress;

    // 会议类别
    @Comment(value = "会议类别")
    @Size(max = 20, message = "会议类别不能超过20个字符")
    @TableField(value = "`meeting_type`", jdbcType = JdbcType.VARCHAR)
    private String meetingType;

    // 会议开始日期
    @Comment(value = "会议开始日期")
    @TableField(value = "`meeting_start`", jdbcType = JdbcType.TIMESTAMP)
    private Date meetingStart;

    // 会议结束日期
    @Comment(value = "会议结束日期")
    @TableField(value = "`meeting_end`", jdbcType = JdbcType.TIMESTAMP)
    private Date meetingEnd;

    // 天数
    @Comment(value = "天数")
    @TableField(value = "`meeting_days`", jdbcType = JdbcType.INTEGER)
    private Integer meetingDays;

    // 参会部门
    @Comment(value = "参会部门")
    @Size(max = 500, message = "参会部门不能超过500个字符")
    @TableField(value = "`meeting_departments`", jdbcType = JdbcType.VARCHAR)
    private String meetingDepartments;

    // 参会人数
    @Comment(value = "参会人数")
    @TableField(value = "`meeting_peoples`", jdbcType = JdbcType.INTEGER)
    private Integer meetingPeoples;

    // 工作人员数
    @Comment(value = "工作人员数")
    @TableField(value = "`meeting_workers`", jdbcType = JdbcType.INTEGER)
    private Integer meetingWorkers;

    // 会议内容
    @Comment(value = "会议内容")
    @TableField(value = "`meeting_content`", jdbcType = JdbcType.CLOB)
    private String meetingContent;

    // 住宿费
    @Comment(value = "住宿费")
    @TableField(value = "`amount_hotel`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountHotel;

    // 伙食费
    @Comment(value = "伙食费")
    @TableField(value = "`amount_catering`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountCatering;

    // 会议上租金费
    @Comment(value = "会议上租金费")
    @TableField(value = "`amount_rent`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountRent;

    // 交通费
    @Comment(value = "交通费")
    @TableField(value = "`amount_car`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountCar;

    // 文印费
    @Comment(value = "文印费")
    @TableField(value = "`amount_paper`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountPaper;

    // 医药费
    @Comment(value = "医药费")
    @TableField(value = "`amount_medicine`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountMedicine;

    // 其他费
    @Comment(value = "其他费")
    @TableField(value = "`amount_other`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal amountOther;

}
